matlab之eval的妙用:批量生成、修改变量名(一次性读取Excel内多个工作簿) 您所在的位置:网站首页 matlab eval函数用法 matlab之eval的妙用:批量生成、修改变量名(一次性读取Excel内多个工作簿)

matlab之eval的妙用:批量生成、修改变量名(一次性读取Excel内多个工作簿)

2023-06-07 03:14| 来源: 网络整理| 查看: 265

读取Excel内的多工作簿,这里不在啰嗦,使用xlsfinfo配合xlsread即可。

但是如果一个excel文件内工作簿的数量太多,就需要借助eval了。

eval是一个函数,可以把括号里的字符串解释成命令直接运行。在循环中我们没有办法直接修改变量名字,但使用eval可以达到目的。 举例:

[~,sheets]=xlsfinfo('file.xlsx'); % get sheet names in excel file sheetsName=string(sheets); % cell to string excelName='file.xlsx'; for i=1:length(sheetsName) a=['sheet',num2str(i)]; eval([a,'=xlsread(''',excelName,''',','''',char(sheetsName(i)),'''',');']); end

运行即可发现每一个sheet都按照顺序赋给了sheet1,sheet2…中了。

注意 eval中的参数必须是字符串。

三个引号:连续的两个引号中,第一个引号表示转义,说明第二引号就是引号,而不是字符的结束。第三个引号才是说明是字符的结束。char(sheetsName(i))是在字符串拼接时把string类型变成char型,具体原因可以看这里。一定要好好检查eval内的字符串是否正确,可以先把命令写出来,在一点点添加引号和逗号,测试无误后再放到程序中运行。

最后 eval其实是一个运行速度很慢的操作,所以matlab官方提供了在一些情景下来替代eval的方法。详情可以看这里。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有